From: Ian Jackson Date: Thu, 13 Dec 2012 11:44:01 +0000 (+0000) Subject: libxl: qemu trad logdirty: Tolerate ENOENT on ret path X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~7525 X-Git-Url: https://dgit.raspbian.org/%22http:/www.example.com/cgi/%22https:/%22bookmarks://%22/%22http:/www.example.com/cgi/%22https:/%22bookmarks:/%22?a=commitdiff_plain;h=b051ddb41617ba543ee8de5cfc3258a0a2b71aa6;p=xen.git libxl: qemu trad logdirty: Tolerate ENOENT on ret path It can happen in error conditions that lds->ret_path doesn't exist, and libxl__xs_read_checked signals this by setting got_ret=NULL. If this happens, fail without crashing. Reported-by: Alex Bligh , Signed-off-by: Ian Jackson Acked-by: Ian Campbell Committed-by: Ian Campbell --- diff --git a/tools/libxl/libxl_dom.c b/tools/libxl/libxl_dom.c index 95da18e560..7586a6c97c 100644 --- a/tools/libxl/libxl_dom.c +++ b/tools/libxl/libxl_dom.c @@ -725,7 +725,7 @@ static void domain_suspend_switch_qemu_xen_traditional_logdirty rc = libxl__xs_read_checked(gc, t, lds->ret_path, &got_ret); if (rc) goto out; - if (strcmp(got, got_ret)) { + if (!got_ret || strcmp(got, got_ret)) { LOG(ERROR,"controlling logdirty: qemu was already sent" " command `%s' (xenstore path `%s') but result is `%s'", got, lds->cmd_path, got_ret ? got_ret : "");